<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
  <link rel="stylesheet" media="screen" type="text/css" href="./style.css" />
  <link rel="stylesheet" media="screen" type="text/css" href="./design.css" />
  <link rel="stylesheet" media="print" type="text/css" href="./print.css" />

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div class="dokuwiki export">

<h1 class="sectionedit1"><a name="icarus_verilog_glossary" id="icarus_verilog_glossary">Icarus Verilog Glossary</a></h1>
<div class="level1">
<pre class="code">Throughout Icarus Verilog descriptions and source code, I use a
variety of terms and acronyms that might be specific to Icarus
Verilog, have an Icarus Verilog specific meaning, or just aren&#039;t
widely known. So here I define these terms.


LRM     - Language Reference Manual
    This is a generic acronym, but in the Verilog world we sometimes
    mean *the* language reference manual, the IEEE1364 standard.


PLI     - Programming Language Interface
    This is a C API into Verilog simulators that is defined by the
    IEEE1364. There are two major interfaces, sometimes called PLI 1
    and PLI 2. PLI 2 is also often called VPI.


UDP     - User Defined Primitive
    These are objects that Verilog programmers define with the
    &quot;primitive&quot; keyword. They are truth-table based devices. The
    syntax for defining them is described in the LRM.


VPI     -
    This is the C API that is defined by the Verilog standard, and
    that Icarus Verilog partially implements. See also PLI.


VVM     - Verilog Virtual Machine
    This is the Icarus Verilog runtime that works with the code
    generator that generates C++.


VVP     - Verilog Virtual Processor
    This is the Icarus Verilog runtime that reads in custom code in a
    form that I call &quot;VVP Assembly&quot;. See the vvp/ directory for
    documentation on that.
</pre>

</div>
</div>
</body>
</html>
